C语言系统编程与进程通信
📚 共计 30 章节
01
C语言与操作系统
C语言在系统编程中的地位 · 操作系统接口(系统调用)· 用户态与内核态 · GCC编译器的基本使用
系统调用
GCC
02
文件I/O基础
文件描述符的概念 · open/close/read/write系统调用 · 标准文件描述符 · 文件权限与umask
文件描述符
umask
03
文件I/O进阶
lseek系统调用 · 文件共享与原子操作 · dup和dup2重定向 · fcntl函数
lseek
fcntl
04
标准I/O库
FILE结构体 · fopen/fclose/fread/fwrite · 缓冲机制(全缓冲/行缓冲/无缓冲)· 与系统调用的对比
FILE
缓冲
05
进程基础
进程的概念与生命周期 · 进程ID(PID)与父进程ID(PPID)· 进程状态 · ps和top命令
PID
ps
06
进程创建
fork系统调用 · 写时拷贝技术 · fork的返回值与父子进程关系 · getpid/getppid
fork
写时拷贝
07
进程执行
exec族函数(execl/execlp/execle/execv/execvp)· fork+exec组合 · system函数
exec
system
08
进程终止
exit与_exit的区别 · atexit注册终止处理函数 · 孤儿进程与僵尸进程 · wait和waitpid
僵尸进程
waitpid
09
进程间通信概述
IPC的概念 · IPC的分类(管道/信号/共享内存/消息队列/信号量/套接字)· 优缺点对比
IPC
分类
10
无名管道
pipe函数 · 管道的读写规则 · 阻塞与非阻塞 · 父子进程管道通信示例
pipe
阻塞
11
有名管道
mkfifo函数 · FIFO的创建与打开 · FIFO的读写规则 · 无亲缘关系进程通信
FIFO
mkfifo
12
信号基础
信号的概念与作用 · 常见信号(SIGINT/SIGKILL/SIGSEGV等)· signal函数 · 信号的不可靠性
SIGINT
signal
13
信号进阶
sigaction函数 · 信号集与sigprocmask · sigpending · 可重入函数与异步信号安全
sigaction
可重入
14
信号应用
alarm与pause函数 · setitimer定时器 · SIGCHLD信号处理子进程 · 信号驱动I/O
alarm
SIGCHLD
15
共享内存
shmget/shmat/shmdt/shmctl · 共享内存的同步问题 · System V与POSIX共享内存
shmget
同步
16
消息队列
msgget/msgsnd/msgrcv/msgctl · 消息队列的优缺点 · System V消息队列示例
msgget
System V
17
信号量
信号量的概念 · semget/semop/semctl · 二元信号量与计数信号量 · 生产者消费者问题
semget
PV操作
18
POSIX IPC
POSIX消息队列(mq_open/mq_send/mq_receive)· POSIX信号量(sem_open/sem_wait/sem_post)· 与System V对比
POSIX
mq
19
内存映射
mmap函数 · 文件映射与匿名映射 · mmap实现父子进程通信 · mmap实现文件拷贝
mmap
匿名映射
20
套接字基础
套接字的概念 · 字节序(大端/小端)· IP地址转换函数 · socket/connect/bind/listen/accept
socket
字节序
21
TCP通信
TCP三次握手与四次挥手 · TCP客户端/服务器模型 · 多进程并发服务器 · 多线程并发服务器
TCP
并发
22
UDP通信
UDP的特点 · UDP客户端/服务器模型 · UDP的广播与组播 · UDP与TCP的选择
UDP
广播
23
本地套接字
Unix域套接字 · sockaddr_un结构体 · 本地流式套接字 · 本地数据报套接字
Unix域
sockaddr_un
24
多路复用
select函数 · poll函数 · epoll函数(LT与ET模式)· epoll实现高并发服务器
epoll
LT/ET
25
线程基础
线程的概念与优势 · pthread_create/pthread_exit/pthread_join · 线程ID与进程ID
pthread
线程ID
26
线程同步
互斥锁(pthread_mutex_t)· 读写锁(pthread_rwlock_t)· 条件变量(pthread_cond_t)
互斥锁
条件变量
27
线程安全
线程安全函数 · 线程局部存储(TLS)· __thread关键字 · 线程与信号
TLS
__thread
28
守护进程
守护进程的概念 · 创建守护进程的步骤(fork/umask/setsid等)· syslog日志系统
daemon
syslog
29
高级I/O
非阻塞I/O · I/O多路复用(回顾)· 异步I/O(AIO)· 存储映射I/O
AIO
非阻塞
30
综合实战
基于epoll+线程池的高并发服务器 · 进程间通信综合应用(共享内存+信号量)· gdb/strace/valgrind调试技巧
epoll
线程池
gdb